﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HerGoS.Documentos.Entities;
using HerGoS.ControlsUI;
using HerGoS.Documentos.Engine;

namespace HerGoS.WebUI.Documentos
{
    public partial class TiposDocumentos_ABM : PageBase
    {

        #region Propiedades

        public TipoDocumento TipoDocumento
        {
            get
            {
                if (ViewState["tipoDocumento"] != null)
                    return (TipoDocumento)ViewState["tipoDocumento"];
                return null;
            }
            set
            {
                ViewState["tipoDocumento"] = value;
            }

        }

        #endregion


        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request.QueryString["id"] == null)
                {
                    TipoDocumento = new TipoDocumento();
                }
                else
                {
                    var Id = Convert.ToInt32(Request.QueryString["id"]);
                    TipoDocumento = GestorTipoDocumentos.Obtener(Id);
                    this.txtCodigo.Text = TipoDocumento.Codigo;
                    this.txtDescripcion.Text = TipoDocumento.Descripcion;
                    this.cboCatalogo.SelectedValue = TipoDocumento.Catalogo == null ? "0" : TipoDocumento.Catalogo.OID.ToString();
                }
                Initialize();
            }

        }

        void Initialize()
        {

            this.cboCatalogo.DataSource = GestorCatalogoDocumentos.Consultar();
            cboCatalogo.DataTextField = "Descripcion";
            cboCatalogo.DataValueField = "OID";
            cboCatalogo.DataBind();
            cboCatalogo.Items.Insert(0, new ListItem("Seleccione... ", "0"));

            this.btnGuardar.Settings(new ButtonExtText());
            this.btnCerrar.Settings(new ButtonExtText());
            LoadAutoria(TipoDocumento);
        }


        protected void btnGuardar_Click(object sender, EventArgs e)
        {
            TipoDocumento.Codigo = this.txtCodigo.Text;
            TipoDocumento.Descripcion = this.txtDescripcion.Text;
            TipoDocumento.Catalogo = GestorCatalogoDocumentos.Obtener(this.cboCatalogo.SelectedValue.ToInteger());

            if (TipoDocumento.Persistencia == Interfaces.EstadoPersistencia.INSERT)
            {
                var documentExists = GestorTipoDocumentos.Consultar(TipoDocumento.Codigo, null, true).FirstOrDefault();
                if (documentExists != null)
                {
                    var script = @"$(function(){{parent.MensajeTipoDocumentoDuplicado('{0}');}});";
                    script = string.Format(script, documentExists.Codigo);
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", script, true);
                    return;
                }
            }
            GestorTipoDocumentos.Guardar(TipoDocumento);

            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", "parent.IntervaloCerrarPopup();", true);

        }


        protected void btnCerrar_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "closedialog", "parent.CerrarPopup();", true);
        }

      
    }
}